`timescale 1ns/1ns
interface PS_if(input bit sys_clk); 
 
parameter aw = 5;
parameter dw = 32;


bit                rst_n;
bit                DSP_core_en;



  
bit        [aw-1:0]PG_PC;
bit                FP_en;
bit        [aw-1:0]FP_PC;
bit        [aw-1:0]PS_PC;


bit                DP_stall;
bit                I_FP_invalid;
bit                D_RAM_invalid;


bit                PG_io_invalid;
bit                PS_io_invalid;  

  
bit                Int_Sev;   
   
//********************************************************************************************************************* 
           

clocking cb @(negedge sys_clk);
output                   rst_n,
                         DSP_core_en,
                         PG_PC,
                         DP_stall,
                         I_FP_invalid,
                         D_RAM_invalid,
                         PG_io_invalid,
                         Int_Sev;
                          
input                    FP_en,
                         FP_PC,
                         PS_PC, 
                         PS_io_invalid;
endclocking 


//*********************************************************************************************************************   
  

  modport TEST (clocking cb );

  modport DUT (input     rst_n,
                         DSP_core_en,
                         DP_stall,
                         I_FP_invalid,
                         D_RAM_invalid,
                         PG_io_invalid,
                         Int_Sev, 
                         PG_PC,
                         
               output    FP_en,
                         FP_PC,
                         PS_PC, 
                         PS_io_invalid);

  modport MONITOR (input rst_n,
                         DSP_core_en,
                         PG_PC,
                         DP_stall,
                         I_FP_invalid,
                         D_RAM_invalid,
                         PG_io_invalid,
                         Int_Sev,
                         FP_en,
                         FP_PC,
                         PS_PC, 
                         PS_io_invalid  );

endinterface
